<?php

/**
 * Утилиты пользователей модуля User
 *
 */
abstract class User_Utils
{
        
    /**
    * @desc Возвращает список ролей пользователей фронтенда
    * 
    * @return array
    */
    static public function getRoles() 
    {
        $query = '
            SELECT 
                   `role`, 
                   `title` 
              FROM 
                   `strategy` 
            ';
        return database::fetchPairs($query);
    }
    
    /**
    * @desc Возвращает данные субъекта безопасности
    * 
    * @return array
    */
    static public function getSystemSubjectData($id) 
    {
        $query = '
            SELECT 
                   `s_s`.`email`, 
                   `s_s`.`id`
              FROM 
                   `user_user` `u_u` 
        INNER JOIN 
                   `system_subject` `s_s` 
                ON 
                   `s_s`.`id` = `u_u`.`subject_id`
             WHERE 
                   `u_u`.`id` = "' . $id . '"
             ';
        return database::fetchRow($query);
    }
    
    /**
    * @desc Возвращает id администратора как пользователя по id субъекта безопасности.
    * 
    * @return integer
    */
    static public function getAdminUser_UserId() 
    {
        $query = '
            SELECT 
                   `u_u`.`id` 
              FROM 
                   `system_admin` `s_a` 
        INNER JOIN 
                   `user_user` `u_u` 
                ON 
                   `u_u`.`subject_id` = `s_a`.`subject_id` 
             WHERE 
                   `s_a`.`id` = ' . (int)Security_Session::getProfileId(Security_Subject::ADMIN);
        return database::fetchOne($query);
    }
    
}